package com.mfs.proxy.core.client.processor;

import java.nio.ByteBuffer;

/**
 * 字节转换
 *
 * @author mfs
 * @date 2023/7/10 22:36
 **/
public interface Transfer {
    /**
     * 字节转换，转换成功的对象会被暂存，在调用{@link #next()}的时候依次返回给用户
     *
     * @param byteBuffer 待转换的字节序列
     * */
    void translate(ByteBuffer byteBuffer);

    /**
     * 是否存在已转换成功但未被返回的字节
     * @return true
     * */
    boolean hasNext();

    /**
     * 返回一串转换完成的字节序列，返回后，该字节将从暂存区删除。也就是说无法再次获取到改字节
     * @return ByteBuffer / null
     * */
    ByteBuffer next();

}
